home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Tele / C / Comet2.1.3.cpt / include / 3270.h next >
Text File  |  1991-07-24  |  6KB  |  175 lines

  1. /***************************************************************************
  2. ****                   3270 Driver header file                          ****
  3. ***************************************************************************/
  4. /*
  5.     Copyright Cornell University 1986.  All rights are reserved.
  6.  
  7. */
  8.  
  9. #define ZF             0x0040      /* mask bit of zero flag  */
  10. #define AID_RESET        0x60      /* code for no AID generated */
  11. #define FWD                 0      /* forward search direction for screen attr */
  12. #define BACK                1      /* backward search direction for screen attr */
  13. #define TABS               38      /* number of 3270 keys to support */
  14. #define TELNETSOCK         23      /* Telnet well known socket no. */
  15.  
  16.  
  17. #define SCREEN_SIZE        1920        /* size of the screen map                */
  18. #define ROW_SIZE          80            /* # of characters per row                */
  19. #define COL_SIZE          24
  20.  
  21. /* 3270 model IDs */
  22. #define IBMMOD2                0
  23. #define IBMMOD3                1
  24. #define IBMMOD5                2
  25.  
  26.  
  27. /* define the 3270 command codes                                            */
  28.  
  29. #define W                0x01        /* Write                                */
  30. #define RB                0x02        /* Read Buffer                            */
  31. #define EW                0x05        /* Erase/Write                            */
  32. #define RM                0x06        /* Read Modified                        */
  33. #define EWA                0x0D        /* Erase/Write Alternate                */
  34. #define RMA                0x0E        /* Read Modified All                    */
  35. #define EAU                0x0F        /* Erase All Unprotected                */
  36.  
  37. /* define the 3270 order codes                                                */
  38.  
  39. #define PT                0x05        /* program tab                            */
  40. #define GE                0x08        /* graphic escape                        */
  41. #define SBA                0x11        /* set buffer address                     */
  42. #define EUA                0x12        /* erase unprotected to address            */
  43. #define IC                0x13        /* insert cursor                        */
  44. #define SF                0x1D        /* start field                            */
  45. #define SA                0x28        /* set attribute, never seen            */
  46. #define SFE                0x29        /* start field extended, never seen        */
  47. #define MF                0x2C        /* modify field, never seen                */
  48. #define RA                0x3C        /* repeat to address                    */ 
  49.  
  50. /* define the Write Control Character (WCC) bit definitions                    */
  51.  
  52. #define RMDT            0x01        /* reset modified data tag                */
  53. #define KYBDRST            0x02        /* keyboard resotre bit                    */
  54. #define SNDALRM            0x04        /* sound alarm                            */ 
  55.  
  56. /* define the bit definitions for the 3270 field attributes                    */
  57.  
  58. #define MDT                0x01        /* modified data tag                    */
  59.                                     /* 0 -> field not modified                */
  60.                                     /* 1 -> field modified                    */
  61.  
  62. #define PROT            0x02        /* protected/unprotected                */
  63.                                     /* 0 -> unprotected                        */
  64.                                     /* 1 -> protected                        */
  65.                                     /* PROTECTED is 0x20 in data stream;
  66.                                         0x02 is RESERVED */
  67.                                     
  68. #define DSPD            0x0C        /* display detectable mask                */
  69.                                     /* 00 -> display/not pen-detectable        */
  70.                                     /* 01 (4) -> display/pen-detectable            */
  71.                                     /* 10 (8) -> intensified display/detectable    */
  72.                                     /* 11 (12) -> nondisplay/non-detectable        */
  73.  
  74. #define INVIS            0x0C        /* display detectable field is invisible */
  75.  
  76. #define ALPHANUM        0x10        /* alphanumeric                            */
  77.                                     /* 0 -> alphanumeric                    */
  78.                                     /* 1 -> numeric                            */
  79.  
  80. #define DSPMOD            0x1E        /* ALL screen detectable fields for our color 3270 */
  81.  
  82. #define HOSTPROT        0x20        /* protected/unprotected host representation    */
  83.  
  84. #define GC                0xC0        /* graphic converter                    */
  85.  
  86. #define ATTR            32            /* if < 32 char is an attribute */
  87. #define IBMNULL            0xFF        /* NULL gets bumped to 0xff */
  88.  
  89. /* event_reg bit definitions                                                 */
  90.  
  91. #define SCREEN_EVENT   0x0001      /* post new info to update real screen     */
  92. #define SOUND_ALARM    0x0002      /* post sound terminal bell from WCC     */
  93. #define KYBD_RESTORE   0x0004      /* post unlock keyboard from WCC         */
  94. #define SYS_LOCK       0x0008      /* post lock keyboard from send ATTN     */
  95. #define HOST_EVENT     0x0010      /* post process string from host         */
  96. #define INSERT         0x0020      /* post insert mode                         */
  97. #define LINE_25        0x0040      /* post update 3270 status line             */
  98. #define SCREEN_REFRESH 0x0080      /* post update screen ready                 */
  99. #define KYBD_LOCK      0x0100      /* post lock keyboard from illegal key     */
  100. #define TFTP_ON        0x0200      /* post file transfer in progress         */
  101. #define TCP_ACK        0x0400      /* post we should ack TCP packet            */
  102. #define CLEAR_KEY       0x0800        /* CLEAR was most recent key */
  103. #define TICKLE         0x1000      /* post tickle telnet ayt                 */
  104. #define FIN            0x2000      /* post fin sent to host                 */
  105.  
  106.  
  107. /* The real pfkey codes */
  108.  
  109. #define  RPF1        0xf1
  110. #define  RPF2        0xf2
  111. #define  RPF3        0xf3
  112. #define  RPF4        0xf4
  113. #define  RPF5        0xf5
  114. #define  RPF6        0xf6
  115. #define  RPF7        0xf7
  116. #define  RPF8        0xf8
  117. #define  RPF9        0xf9
  118. #define  RPF10        0x7a    
  119. #define  RPF11        0x7b    
  120. #define  RPF12        0x7c    
  121. #define  RPF13        0xc1    
  122. #define  RPF14        0xc2    
  123. #define  RPF15        0xc3    
  124. #define  RPF16        0xc4    
  125. #define  RPF17        0xc5    
  126. #define  RPF18        0xc6    
  127. #define  RPF19        0xc7    
  128. #define  RPF20        0xc8    
  129. #define  RPF21        0xc9    
  130. #define  RPF22        0x4a    
  131. #define  RPF23        0x4b    
  132. #define  RPF24        0x4c    
  133. #define  RPA1        0x6c
  134. #define  RPA2        0x6e
  135. #define  RPA3        0x6b
  136. #define     RCLEAR        0x6d
  137. #define  RENTER        0x7d
  138.  
  139.  
  140. /* ASCII map key equivalents */
  141. #define IBMK_RS        0x80        /* record separator | -- vertical bar */
  142. #define IBMK_FS        0x81        /* field separator    -- double dagger */
  143. #define IBMK_TAB    0x81        /* IBM tab for PASTE or key macro only */
  144.  
  145.  
  146. #define SCRALLMOD    0xffffffff        /* modflg test for all changed */
  147.  
  148. int  err_sub();       /*  exit the program                            */
  149. int  tftp_on();       /*  called by server while transfer in progress */
  150. int  tftp_off();      /*  called by server when transfer finished     */
  151.  
  152. /*     3270 command Interface  */
  153.  
  154. int cmd();           /*  deal with commands from host                */
  155. int read_mod();      /*  read modified logic                         */
  156. int eau();           /*  erase all unprotected logic                 */
  157.  
  158.  
  159. /*     Miscellaneous Routines  */
  160.  
  161. int mem_clear();             /*  clear a chunk of memory                     */
  162. int addr_12();               /*  form 12 bit address to send to host         */
  163. int pc_attr();               /*  translate 3270 attribute into PC attribute  */
  164.  
  165. unsigned char *look_attr();    /*  look forward or back to screen attr byte    */
  166. unsigned char *next_unp();     /*  find next unprotected field                 */
  167. unsigned char *first_unp();
  168.  
  169.  
  170. long memtest();            /* check to see if enough memory available */
  171.  
  172. /*  system subroutines  */
  173.  
  174. char *malloc();       /*  returns a pointer to allocated storage      */
  175.